package com.example.ymm.modules1.service.ms;

import com.example.ymm.base.BaseService;
import com.example.ymm.model.TableList;
import com.example.ymm.model.YmPageDto;
import com.example.ymm.modules1.entity.ms.TProviderPartner;
import com.example.ymm.modules1.query.ms.TProviderPartnerQueryCriteria;
import com.example.ymm.modules1.service.dto.ms.DbMsOrderDto;
import com.example.ymm.modules1.service.dto.ms.MsOrderDto;
import com.example.ymm.modules1.service.dto.ms.MsOrderListQueryCriteria;

import java.util.List;

public interface TProviderPartnerService extends BaseService<TProviderPartner> {


    TableList<TProviderPartner> list(TProviderPartnerQueryCriteria criteria, YmPageDto ymPage);


    List<TProviderPartner> queryAll(TProviderPartnerQueryCriteria criteria);


    /**
     * 模糊查询供应商名称
     * @param name
     * @return
     */
    TProviderPartner findLikeName(String name);


    /**
     * 采购单表格 (分页)
     * @param criteria
     * @return
     */
    TableList<MsOrderDto> purchaseOrderTableList(MsOrderListQueryCriteria criteria, YmPageDto ymPage);


    TableList<MsOrderDto> priceTableList(MsOrderListQueryCriteria criteria, YmPageDto ymPage);




    TableList<DbMsOrderDto> getPriceTableList(MsOrderListQueryCriteria criteria, YmPageDto ymPage);

    /**
     * 外协加工单表格 (分页)
     * @param criteria
     * @return
     */
    TableList<MsOrderDto> outsourceOrderTableList(MsOrderListQueryCriteria criteria, YmPageDto ymPage);


    /**
     * 采购单列表
     * @param criteria
     * @return
     */
    List<MsOrderDto> purchaseOrderList(MsOrderListQueryCriteria criteria);

    /**
     * 外协加工单列表
     * @param criteria
     * @return
     */
    List<MsOrderDto> outsourceOrderList(MsOrderListQueryCriteria criteria);

    /**
     * 采购单累计下单量统计
     * @param criteria
     * @return
     */
    Double purchaseOrderSum(MsOrderListQueryCriteria criteria);

    /**
     * 采购单累计下单量统计
     * outsourceOrderSum
     * @param criteria
     * @return
     */
    Double outsourceOrderSum(MsOrderListQueryCriteria criteria);


    void testFn();


}
